home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / parted / timer.h < prev    next >
C/C++ Source or Header  |  2006-04-20  |  2KB  |  55 lines

  1. /*
  2.     libparted - a library for manipulating disk partitions
  3.     Copyright (C) 2001, 2002 Free Software Foundation, Inc.
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  18. */
  19.  
  20. #ifndef PED_TIMER_H_INCLUDED
  21. #define PED_TIMER_H_INCLUDED
  22.  
  23. #include <time.h>
  24.  
  25. typedef struct _PedTimer PedTimer;
  26.  
  27. typedef void PedTimerHandler (PedTimer* timer, void* context);
  28.  
  29. struct _PedTimer {
  30.     float            frac;        /* fraction of operation done */
  31.     time_t            start;        /* time of start of op */
  32.     time_t            now;        /* time of last update (now!) */
  33.     time_t            predicted_end;    /* expected finish time */
  34.     const char*        state_name;    /* eg: "copying data" */
  35.     PedTimerHandler*    handler;    /* who to notify on updates */
  36.     void*            context;    /* context to pass to handler */
  37. };
  38.  
  39. extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context);
  40. extern void ped_timer_destroy (PedTimer* timer);
  41.  
  42. /* a nested timer automatically notifies it's parent.  You should only
  43.  * create one when you are going to use it (not before)
  44.  */
  45. extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac);
  46. extern void ped_timer_destroy_nested (PedTimer* timer);
  47.  
  48. extern void ped_timer_touch (PedTimer* timer);
  49. extern void ped_timer_reset (PedTimer* timer);
  50. extern void ped_timer_update (PedTimer* timer, float new_frac);
  51. extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name);
  52.  
  53. #endif /* PED_TIMER_H_INCLUDED */
  54.  
  55.